A network appliance is a processing system that may be connected to a network to provide service to other devices over the network. A file server, or filer, is an example of a network appliance. A filer is a form of storage server which provides file storage and file access to remote clients that request access to the data storage. Another type of storage server, which may be implemented as an appliance, is one which provides clients with block-level access to stored data, rather than file-level access. Such a server can be used in a storage area network (SAN), for example, to provide an interface between clients and mass storage devices.
A filer typically manages a number of storage devices, such as disk drives, that may be assembled in redundant arrays of independent (or inexpensive) disks (RAID) groups. Several drives arranged in RAID groups may be contained in a shelf unit that is managed by a shelf head. The shelf head can monitor the status of the drives and associated hardware, including monitoring physical characteristics of the drives, such as operating temperature, voltage, etc. The shelf may also pass data requests to the drives from the filer.
FIG. 1 illustrates a loop topology. The loop 100 includes a filer communicating with several drives. The filer 102, in this instance, initiates access requests to the several drives 104. The filer 102 and the drives 104 are interconnected using a connection 106. The connection 106 may utilize any one of several loop interconnect technologies, such as Fibre Channel Arbitrated Loop (FC-AL). FC-AL is defined in ANSI standard ANSI X3.272:1996. In this example, requests originate with the filer 102 and travel clockwise (i.e., one-way) through the connection 106. When one of the drives 104 receives an access request from the filer 102, the request is fulfilled, and returned through the connection 106.
If the filer desires data from the drive 104b, a read request is issued through the connection 106. The read request first travels to the drive 104a, which recognizes that the request is not addressed to it, and allows the request to continue on to the drive 104b. When the request reaches the drive 104b, the drive 104b fulfills the request, and returns it to the filer 102 over the connection 106. The fulfilled request passes the drive 104c on its way to the filer 102.
When one of the drives 104 is first connected to the loop 100, the drive 104 issues a loop initialization request (LIR), which generally comprises a number of loop initialization primitives (LIPs). The LIR is used to initiate a connection with the loop 100, assign the new device a loop ID and allow the new device to report its position in the loop 100. All existing devices, including drives, participate in the loop initialization process on loop 100 and, when complete, the initiator device (FC-AL adapter) is made aware of the new drive and knows the make-up of the loop topology. As a result, when a LIR is issued by a drive connecting to the loop 100, every device attached to the loop temporarily ceases moving data and begins to participate in the loop initialization protocol.
Occasionally, for unknown reasons a drive will continuously and unnecessarily issue LIRs, even though the drive is established on the loop 100. When LIRs are continuously and unnecessarily issued, the loop 100 may, in some cases, no longer be able to handle data traffic since so many LIRs are being issued. For example, if a drive is issuing 20 or more LIRs every minute, the loop 100 will be constantly initializing and will be unable to transmit data altogether. Even if the drive is issuing fewer LIRs, unnecessary LIRs may slow data transfer. What is needed then is a way to remove drives that begin issuing LIRs unnecessarily.